<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>vibrato</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="vibr.html" title="vibr" />
    <link rel="next" href="vincr.html" title="vincr" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">vibrato</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="vibr.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="vincr.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry">
      <a id="vibrato"></a>
      <div class="titlepage"></div>
      <a id="IndexVibrato" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">vibrato</span>
        </h2>
        <p>vibrato — 
      Generates a natural-sounding user-controllable vibrato.
          </p>
      </div>
      <div class="refsect1">
        <a id="idp164427712"></a>
        <h2>Description</h2>
        <p>
      Generates a natural-sounding user-controllable vibrato.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp164429072"></a>
        <h2>Syntax</h2>
        <pre class="synopsis">kout <span class="command"><strong>vibrato</strong></span> kAverageAmp, kAverageFreq, kRandAmountAmp, kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate, kcpsMaxRate, ifn [, iphs</pre>
      </div>
      <div class="refsect1">
        <a id="idp164431424"></a>
        <h2>Initialization</h2>
        <p>
      <span class="emphasis"><em>ifn</em></span> -- Number of vibrato table. It normally contains a sine or a triangle wave.
    </p>
        <p>
      <span class="emphasis"><em>iphs</em></span> -- (optional) Initial phase of table, expressed as a fraction of a cycle (0 to 1). A negative value will cause phase initialization to be skipped. The default value is 0.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp164434400"></a>
        <h2>Performance</h2>
        <p>
      <span class="emphasis"><em>kAverageAmp</em></span> -- Average amplitude value of vibrato
    </p>
        <p>
      <span class="emphasis"><em>kAverageFreq</em></span> -- Average frequency value of vibrato (in cps)
    </p>
        <p>
      <span class="emphasis"><em>kRandAmountAmp</em></span> -- Amount of random amplitude deviation
    </p>
        <p>
      <span class="emphasis"><em>kRandAmountFreq</em></span> -- Amount of random frequency deviation
    </p>
        <p>
      <span class="emphasis"><em>kAmpMinRate</em></span> -- Minimum frequency of random amplitude deviation segments (in cps)
    </p>
        <p>
      <span class="emphasis"><em>kAmpMaxRate</em></span> -- Maximum frequency of random amplitude deviation segments (in cps)
    </p>
        <p>
      <span class="emphasis"><em>kcpsMinRate</em></span> -- Minimum frequency of random frequency deviation segments (in cps)
    </p>
        <p>
      <span class="emphasis"><em>kcpsMaxRate</em></span> -- Maximum frequency of random frequency deviation segments (in cps)
    </p>
        <p>
      <span class="emphasis"><em>vibrato</em></span> outputs a natural-sounding user-controllable vibrato. The concept is to randomly vary both frequency and amplitude of the oscillator generating the vibrato, in order to simulate the irregularities of a real vibrato. 
    </p>
        <p>
      In order to have a total control of these random variations, several input arguments are present. Random variations are obtained by two separated segmented lines, the first controlling amplitude deviations, the second the frequency deviations. Average duration of each segment of each line can be shortened or enlarged by the arguments <span class="emphasis"><em>kAmpMinRate</em></span>, <span class="emphasis"><em>kAmpMaxRate</em></span>, <span class="emphasis"><em>kcpsMinRate</em></span>, <span class="emphasis"><em>kcpsMaxRate</em></span>, and the deviation from the average amplitude and frequency values can be independently adjusted by means of <span class="emphasis"><em>kRandAmountAmp</em></span> and <span class="emphasis"><em>kRandAmountFreq</em></span>.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp164447696"></a>
        <h2>Examples</h2>
        <p>
      Here is an example of the vibrato opcode. It uses the file <a class="ulink" href="examples/vibrato.csd" target="_top"><em class="citetitle">vibrato.csd</em></a>.
      </p>
        <div class="example">
          <a id="idp164449472"></a>
          <p class="title">
            <strong>Example 1001. Example of the vibrato opcode.</strong>
          </p>
          <div class="example-contents">
            <p>See the sections <a class="link" href="UsingRealTime.html" title="Real-Time Audio"><em class="citetitle">Real-time Audio</em></a> and <a class="link" href="CommandFlags.html" title="Csound command line"><em class="citetitle">Command Line Flags</em></a> for more information on using command line flags.</p>
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
-odac      <span class="comment">;;;realtime audio out</span>
<span class="comment">;-iadc    ;;;uncomment -iadc if realtime audio input is needed too</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o vibrato.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">ksmps</span> <span class="op">=</span> 32
<span class="ohdr">nchnls</span> <span class="op">=</span> 2
<span class="ohdr">0dbfs</span>  <span class="op">=</span> 1

<span class="oblock">instr</span> 1

kaverageamp     <span class="opc">init</span> .5
kaveragefreq    <span class="opc">init</span> 5
krandamountamp  <span class="opc">line</span> p4, p3, p5			<span class="comment">;increase random amplitude of vibrato</span>
krandamountfreq <span class="opc">init</span> .3
kampminrate <span class="opc">init</span> 3
kampmaxrate <span class="opc">init</span> 5
kcpsminrate <span class="opc">init</span> 3
kcpsmaxrate <span class="opc">init</span> 5
kvib <span class="opc">vibrato</span> kaverageamp, kaveragefreq, krandamountamp, krandamountfreq, kampminrate, kampmaxrate, kcpsminrate, kcpsmaxrate, 1
asig <span class="opc">poscil</span> .8, 220<span class="op">+</span>kvib, 1			<span class="comment">;add vibrato</span>
     <span class="opc">outs</span> asig, asig

<span class="oblock">endin</span>
<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span> 1 0 16384 10 1       <span class="comment">;sine wave</span>

<span class="stamnt">i</span> 1 0 15 .01 20

<span class="stamnt">e</span>
<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
      </div>
      <div class="refsect1">
        <a id="idp164453760"></a>
        <h2>See Also</h2>
        <p>
      <a class="link" href="jitter.html" title="jitter"><em class="citetitle">jitter</em></a>, 
      <a class="link" href="jitter2.html" title="jitter2"><em class="citetitle">jitter2</em></a>, 
      <a class="link" href="vibr.html" title="vibr"><em class="citetitle">vibr</em></a>
    </p>
      </div>
      <div class="refsect1">
        <a id="idp164457792"></a>
        <h2>Credits</h2>
        <p>Author: Gabriel Maldonado</p>
        <p>New in Version 4.15</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="vibr.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="vincr.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">vibr </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> vincr</td>
        </tr>
      </table>
    </div>
  </body>
</html>
